home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload Trio 2
/
Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO
/
dir38
/
blnks415.zip
/
BLANKS.DOC
< prev
next >
Wrap
Text File
|
1993-12-01
|
60KB
|
1,280 lines
╒══════════════════════════════════════════╕
│ BLANKs │
│ Revision 4.15.0 │
│ │
│ Copyright (C) 1988-1993 FM de Monasterio │
│ Licensed Material. All Rights Reserved │
╘══════════════════════════════════════════╛
CONTENTS
1. SUMMARY
2. REGISTRATION
3. PROGRAM INFORMATION
4. INSTALLATION & USAGE
5. INSTALLATION IN UPPER MEMORY
6. TECHNICAL INFORMATION
7. OPERATION REQUIREMENTS & CONFLICTS
8. COPYRIGHT & LICENSE INFORMATION
9. DISTRIBUTION TERMS
1. SUMMARY
BLANKs is a DOS-based, resident utility which blanks the screen after a
selectable time interval without keyboard, mouse, or video activity; an
interval as short as 1 minute or as long as 60 minutes can be selected.
Selecting 0 minutes disables the timed screen blanking.
BLANKs also provides options for parking the hard disk(s) upon blanking
of the screen; for manual screen blanking if a (user-defined) hotkey is
pressed or a (user-defined) mouse button is clicked and the mouse is at
a (user-defined) corner of the screen; and for the use of a password to
unblank the (manually blanked) screen. See BLANKS.NEW for a description
of what is new in the current version.
BLANKs is a (terminate-and-stay) resident program which can be executed
repeatedly to change its parameters without yielding multiple copies to
memory. It consists of a resident component, that contains the code for
video blanking/unblanking and for parking the disk, which occupies less
than 1 KB of RAM, and a non-resident component, that loads the resident
component, communicates with the resident on further program executions
and provides other ancillary video services.
BLANKs requires MS-DOS version 3 or higher, or a compatible DOS system.
Although not compatible with WINDOWS, BLANKs can be configured to avoid
conflicts with WINDOWS 3+ (Standard or Enhanced Mode).
2. REGISTRATION
This software is user-supported; the present release, although lacking the
options marked by asterisks below, is a usable program. You may test this
release for (in)compatibilities with your system, but after the testing is
completed you are requested to order a registered copy of the full release
of the software from the address at the end of this documentation.
If you would rather use this unregistered copy, consider making a donation
to the Children's Hospital of Washington DC, for indigent children in need
of medical care. Every year in the USA, infant mortality claims the lives
of tens of thousands of children before their first year of life, and most
of them come from families below poverty level... Please send to the same
address a check payable to the "PATIENT CARE FUND, CHILDREN'S HOSPITAL" on
the obverse, and marked "For Deposit Only" on the reverse. Donations will
be sent to Children's Hospital. Please identify the program for which you
are making the donation.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
BLANKS.REG contains a form needed to register the Software
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
See the final part of this documentation for information on the Licensing,
Distribution, and Limited Warranty of this software.
3. PROGRAM INFORMATION
BLANKs is a DOS-based program that, after its loading, remains in memory
until receiving a command to uninstall itself or the machine is rebooted
(terminate-and-stay-resident). It blanks the screen after a user-defined
time interval has elapsed without keyboard, mouse, or video activity; an
interval between 1 minute and 60 minutes can be selected. A selection of
0 minutes disables the timed screen blanking.
Once blanking has occurred, pressing any key unblanks the screen, unless
the password-mediated unblanking is enabled (see below), in which case a
user-defined password needs to be typed for the unblanking to occur.
BLANKs can be executed repeatedly to modify resident parameters, without
resulting in multiple copies to memory. The resident component requires
about 1.0 KB of memory. BLANKs parameters can be specified from the DOS
command line or with the DOS environment variable 'BLANKS=' (see below).
BLANKING METHOD
BLANKs supports dual video subsystems, e.g., a VGA color (primary) and a
HERCULES monochrome (secondary) adapter. Subsystems can be reconfigured
separately by the user via switches V1 (primary) and V2 (secondary).
The video blanking is obtained by direct commands to the hardware (video
controller) to turn off/on the video signal. This is a fast method that
operates successfully in the IBM PC/XT, PC/AT and in most IBM compatible
computers installed with MDA, CGA, EGA, VGA, and HERCULES video adapters
or with IBM-compatible adapters from other manufacturers. Actually, the
blanking/unblanking of the video signal was used by the original PC BIOS
during some CGA video services.
Starting with release 3.34, however, the blanking of HERCULES cards HGC,
HGC+, and InColor, uses a zero-row display method, kindly made available
by E.C. Raedecker, which preserves the current video mode (text or 720 x
348 graphics), except during CGA emulation (see switch V1).
CPU VERSIONS
The program is written in assembly language; each version consists of four
processor-type releases (086, 268, 386 and 486) in which the code has been
optimized for the CPU types of the 80x86 processor family. This is needed
since the x86 processors differ markedly in instruction execution time and
the incorporation of a memory cache in some CPU types affects such time by
influencing the speed of instruction fetching and of memory access. A 486
release should be used with a 586 CPU (Pentium) to minimize degradation of
performance vis-á-vis code alignment.
In addition to standard (086) assembly language instructions, the 286, 386
and 486 releases of the program also use 286-, 386- or 486-specific opcode
instructions in "real" mode (which is the native mode for 086 processors).
The type and degree of code optimization vary with the CPU type, and yield
relatively small differences in the resident size, which is less than 1000
bytes.
REQUIREMENTS
The program requires MS-DOS version 3 or later (or compatible DOS system)
and an IBM-compatible SVGA, VGA, EGA, MCGA/CGA, or MDA video adapter or a
HERCULES video card.
SAFETY MEASURES
Each time it is executed, the program verifies its code integrity through
a number of cyclic redundancy checks (CRCs). Program execution is aborted
if any check were to fail as such a failure indicates code corruption and
the program should not be used for your own protection.
The executable program is distributed as a fully encrypted and compressed
EXE-type file in order to reduce the possibility of code tampering.
NOTE --------------------------------------------------------------------
Because both encryption and compression change the code sequences to
different values, it cannot be excluded that these processess might,
by chance, yield an encrypted data sequence which triggers a warning
from antiviral utilities that merely check disk-stored files against
a list of code 'signatures' or instructions. Though all distribution
diskettes are scanned with one such utility to avoid the possibility
of spurious warnings, the changing nature of these 'signature' lists
makes this exclusion difficult.
If using these utilities, check the registered distribution diskette
before installing the programs in your hard disk, and please contact
the vendor (see below) if a spurious warning were triggered.
--------------------------------------------------------------------
4. INSTALLATION & USAGE
In the descriptions below, {} enclose context variables, e.g., the number
{n}, whereas <> enclose alphanumeric characters or keys, e.g., the letter
<n>.
The enclosed utility INSTALL.EXE may be used to copy the program files to
a user-defined drive and directory, and--if so desired--to add statements
to the file AUTOEXEC.BAT so that the program is loaded automatically upon
booting and to append the user-defined directory to the PATH statement.
MANUAL INSTALLATION
Alternatively, to install the program manually, add the command
{path}BLANKS [/SWITCH1 ... /SWITCHn] [;comments]
to the AUTOEXEC.BAT file, if you wish to have the program installed after
booting the system, or simply enter this command from the DOS prompt when
you want to use the program. If given, {path} must specify the drive and
subdirectory for the file BLANKS.EXE.
Square brackets enclose optional command arguments; [/SWITCH1.../SWITCHn]
are program command switches, whereas [;comments] are comments that might
be useful to clarify batch file usage.
If executed with a null argument (i.e., switches were not specified), the
program searches the DOS environment block for a variable with the format
BLANKS=/SWITCH1.../SWITCHn, to use such switches as program commands (see
switch EV below).
If the execution command has null arguments, an environment variable does
not exist, and the resident is not yet installed, then the default (i.e.,
preselected) configuration is used for the installation. If the resident
is already installed, and an environment variable does not exist, a null-
argument command has no other effects than updating the resident in terms
of the video system (except if switch V1 or V2, or both, were specified).
The default cases of the various switches are given below.
Once installed, the resident can be modified at any time by executing the
program with new parameters. If other memory-resident programs were also
used, make sure all residents installed are 'well behaved' and pass along
the necessary interrupt data (see 'OPERATION REQUIREMENTS & CONFLICTS').
COMMAND SWITCHES
These switches allow for the modification of the default (preselected) or
of an already selected resident configuration, or the execution of one of
the non-resident services provided by the program (e.g. display of a Help
panel, adjustment of display brightness, etc).
The switches can be specified in any order, and they must be separated by
a space, tab, comma, or slash; a dash preceded by space may also be used.
Switches are not case sensitive, e.g., PW = Pw = pW = pw. Invalid switch
specifications may result in an error message or in program cancellation.
Some switches have preset ('default') values which are used if new values
were not specified.
Most switches consist of 2 letters; with few exceptions, it is sufficient
to specify the first letter to select such switch. The following command
switches are recognized:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asterisks mark switches unavailable in the unregistered copy
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
SWITCH ?
~~~~~~~~
This switch displays the Status/Usage/Help panels, which are described in
more detail in the section below. If a VGA or EGA is the active adapter,
the program saves the contents of the palette registers prior to changing
the video attributes for its various displays. See section 'STATUS/USAGE/
HELP PANELS' below.
EGA users: The default MS-DOS palette attributes are restored if the EGA
BIOS fails to store data in the Parameter Save Area. Old EGAs
may store invalid data in this area, resulting in an improper
restoration of the video attributes (use the DOS command MODE
CO80 to restore the default attributes).
SWITCH BCn±
~~~~~~~~~~~
Adjust screen brightness contrast (SVGA/VGA). The brightness change step
is specified by the sign and value of number {n} ranging from -63 to +63.
/BC-n For 0 < {n} < 64: Decrease the brightness of the screen,
reducing the contrast of the display.
/BC+n For 0 < {n} < 64: Increase the brightness of the screen,
reducing the saturation of the display.
/BC0 Restore screen to its original brightness as dictated by
the settings of the monitor. Clears the screen.
Brightness changes are additive. Repeated use of the switch or the use of
large step numbers yields unreadable screens; use /BC0 to restore display
contrast. (Switch BC is a sticky parameter, as brightness changes remain
in effect even if BLANKs were made quiescent or uninstalled.)
Defaults: /B = /BC = /BC+ = /BC+2, /B- = /BC- = /BC-2.
* SWITCH CV±
~~~~~~~~~~
Verification of program commands. If a password for screen unblanking has
been selected (see switch PW), switch CV± controls whether or not a user-
defined password must be checked before any command (other than switch ?)
can be implemented.
/CV- Disable command verification.
/CV+ [Re]Enable command verification.
Defaults: /C = /CV = /CV+; no switch on installation = /CV-.
* SWITCH DF±
~~~~~~~~~~
Enables/disables a brief click every 1.3 minutes after a screen blanking,
when parking of the hard disk(s) is attempted.
/DF- Disable disk parking feedback.
/DF+ [Re]Enable hard disk parking feedback.
Defaults: /DF = /DF+; no switch on installation = /DF+.
* SWITCH DP±
~~~~~~~~~~
Enables/disables the parking of the hard disk(s) upon the manual or timed
blanking of the screen. Moves the disk head to the highest disk cylinder
for each physical disk that can be accessed via interrupt-13h calls (BIOS
disk services). Parking is inhibited when BIOS-mediated disk or diskette
activity is in progress at the time of blanking.
/DP- Disable disk parking.
/DP+ [Re]Enable hard disk parking.
If BLANKs is installed in a machine lacking hard disks, parking should be
disabled at the time of installation, as a parking attempt may crash some
machines with poorly designed BIOSes.
NOTE ------------------------------------------------------------------
Disk-parking-upon-blanking is not available in a special version
of BLANKs for diskless machines to avoid potential conflicts.
------------------------------------------------------------------
Defaults: /D = /DP = /DP+; no switch on installation = /DP+.
* SWITCH EV
~~~~~~~~~
When the *initial* copy of COMMAND.COM is loaded at boot time, it creates
a block of memory that will contain the master or global DOS environment.
The environment of DOS consists of a number of text-based variables, each
variable consisting of a name and an associated string having the format:
VARIABLE=string of characters
in which the end of the string is marked by a zero byte. The environment
contains a series of such variables, and the end of the environment block
itself is indicated by an additional zero byte. These variables are used
to pass information to and from COMMAND.COM (or a DOS shell replacement),
batch files, and application programs, such as the PATH= and the COMSPEC=
variables.
Switch EV creates or, if it already exists, updates the environment-block
variable:
BLANKS=/SWITCH1/SWITCH2.../SWITCHn
where /SWITCH1.../SWITCHn are the command switches to be implemented when
the program is executed from the DOS command line or a batch file without
any arguments. Although switch EV itself is incorporated in the variable
as well, it is ignored when such variable is used to provide input to the
program. (See 'ENVIRONMENT VARIABLE BLANKS' for more details.)
Default: /E = /EV.
SWITCH HK±?xn
~~~~~~~~~~~~~
Hotkey switch. In addition to timed screen blanking, BLANKs allows manual
blanking of the video by pressing hotkey combination. The default hotkey
combination is <Ctrl-B> in the distributed version of the program, but it
can be changed with this switch in the case of a key-assignment conflict.
Once the screen has been blanked via the hotkey (manual blanking), it can
only be unblanked by pressing any key.
BLANKs erases the hotkey from the keyboard buffer so it is not displayed.
However, a program executed after BLANKs is loaded could save the hotkey;
this is what happens, for example, with some word processors in which the
hotkey needs to be erased from the text.
/HK- Disable hotkey operation.
/HK+ [Re]Enable hotkey operation.
/HK? Permit selection of a new hotkey combination including
an alphanumeric key, and one or more of the shift keys
<Ctrl>, <Alt>, <left-Shift>, and <right-Shift>.
* /HKxn Select {xn} as the hotkey combination, in which {x} is
a alphanumeric character (0-9 or A-Z) only, and {n} is
a digit between 4 and 15 only. This digit corresponds
to one of the following shifting keys or their sum:
1 = <right-Shift> --------------------------
2 = <left-Shift> Values higher than 15 or
4 = <Ctrl> lower than 4 are invalid
8 = <Alt> --------------------------
For obvious reasons, <Ctrl> or <Alt>, or both, must be part of a new hot-
key combination either in switch HK? or HKxn. If a hotkey other than the
default combination is needed routinely, it may be useful to store in the
DOS environment the variable 'BLANKS=/HKxn' (see below).
Defaults: /H = /HK = /HK+; no switch on installation = /HKB4 /HK+.
* SWITCH LH
~~~~~~~~~
Loads the resident in the Upper Memory Area (UMA), between addresses 640
KB and 1,024 KB of memory; this is the region below the 1-MB boundary of
the memory accessible by 086 CPUs, but above the 640-KB hardware barrier
of MS-DOS. The switch requires an available upper memory block (UMB) of
about 1 KB, which is allocated by the program itself either via a direct
XMS request or, if MS-DOS controls UMB allocation (i.e. DOS 5+ linked to
the UMA through the command 'DOS=UMB' in the CONFIG.SYS file), via calls
to DOS. Allocation of UMBs requires the presence of an XMS manager (XMM)
supporting the UMB services 10h-11h of XMS 2+, and (if the XMM lacks the
capability of remapping memory) the presence of an UMB provider.
SWITCH LHn
A lower upper-memory limit for the UMB loading can also be requested via
switch LHn, in which {n} is a four-digit hexadecimal number between A000
(640 KB) and FF00 (1,020 KB), in order to avoid or select specific areas
of upper memory.
SWITCH LHn@
A lower-memory resident marker can also be installed along with the UMB
resident via switch LH@ or LHn@; the marker occupies 144 bytes of lower
conventional memory, can be identified in some memory mapping utilities
by the name
BLANKs @ UMB
and is released from memory when the UMB resident is uninstalled. This
marker may be used (1) to remind that the resident is already installed
in upper memory, (2) to help locate the UMB installation address in the
case of some mapping utilities, and (3) to help avoid removal conflicts
when lower and upper-memory residents are interspersed.
Defaults: Low-memory installation if any error is found during the UMB
loading; high-memory installation below lower-address limit if UMBs are
not available above such limit. /L = /LH.
SWITCH MA±
~~~~~~~~~~
Enables and disables the monitoring of Mouse activity compatible with the
Microsoft/Logitech mouse driver format. Applications use different mouse
programming styles, of which the most common are: calls to interrupt 33h,
a software interface set up and serviced by the mouse driver, and a user-
defined mouse event handler, which functions as a mouse interrupt service
dedicated to those particular mouse events (e.g. right button pressed, no
mouse motion, etc) defined by the requesting application.
* /MA+ Enable global mouse monitoring (i.e. INT-33h calls and user-
handler calls, and allowing mouse-mediated screen blanking);
this is default status if a mouse driver (Microsoft/Logitech
compatible format) is found to be ACTIVE when the program is
installed.
* /MA- Disable global mouse monitoring; this is the default status
if a mouse driver (Microsoft/Logitech compatible format) is
found to be INACTIVE when the program is installed.
/MI+ Enable monitoring of INT-33h mouse function calls only.
/MI- Disable monitoring of INT-33h mouse function calls only.
* /MH+ Enable mouse monitoring of user-handler calls only.
* /MH- Disable monitoring of user-handler mouse calls only.
* /MB+ Enable mouse-mediated screen blanking; defaults to blanking
when the right mouse button is clicked and the mouse points
to the upper-left corner of the screen. Also:
* /MBR@L Blank screen if the RIGHT mouse button is clicked
and the pointer is at the LEFT-upper screen corner.
* /MBL@L Blank screen if the LEFT mouse button is clicked
and the pointer is at the LEFT-upper screen corner.
* /MBB@L Blank screen if a mouse button is clicked and the
pointer is at the LEFT-upper screen corner.
* /MBR@R Blank screen if the RIGHT mouse button is clicked
and the pointer is at the RIGHT-upper screen corner.
* /MBL@R Blank screen if the LEFT mouse button is clicked
and the pointer is at the RIGHT-upper screen corner.
* /MBB@R Blank screen if a mouse button is clicked and the
pointer is at the RIGHT-upper screen corner.
* /MB- Disable mouse-mediated screen blanking.
NOTE ---------------------------------------------------------------
The monitoring of INT-33h function calls ignores functions #1
('Show Pointer') and #2 ('Hide Pointer') of the mouse driver.
---------------------------------------------------------------
The selected type of mouse activity avoids timed screen blankings. If the
mouse-handler monitoring is enabled and a password is not not required for
unblanking, keyboard activity or mouse motion unblanks the screen.
Starting with release 4.13, BLANKs mouse awareness can be enabled not only
when installing the program (if an active mouse driver is also installed),
but after it has become resident as well. The latter feature allows BLANKs
to become mouse-aware in cases when a mouse driver is installed just prior
the execution of mouse-based applications. The following example is based
on a batch file fragment, where the driver is being loaded and unloaded by
the command-line driver load utility LOAD (available from the author):
@Echo Off
LOAD [path]MOUSE.SYS ; installs the mouse driver
BLANKS /MA+ ; make mouse aware, get INT 33h
<application filename> ; mouse-aware/based program
BLANKS /MA- ; mouse unaware, unhook INT 33h
LOAD /U MS$MOUSE ; uninstall the mouse driver
...
It is very important that BLANKs be made mouse unaware (switch MA-) if the
mouse driver is unloaded from memory, since switch MA+ captures the vector
(i.e., address) of INT 33h and this vector will point to empty memory once
the mouse driver is uninstalled.
Defaults: /M= /MA = /MA+ = /MI+ /MH+ /MBR@L+; /M- = /MA- = /MI- /MH- /MB-;
/MI = /MI+; /MH = /MH+ = /MH+/MBr@l; /MB[+] = /MB+ = /MB+/MBr@l; no switch
on installation = /MH+ /MBr@l.
* SWITCH PA±
~~~~~~~~~~
Controls audio feedback during the checking of the password (see switch CV
and PW). If enabled, the feedback generates a short bell beep each time an
invalid or erroneous key is pressed during password verification.
/PA- Disable password audio feedback.
/PA+ [Re]Enable password audio feedback.
Defaults: /PA = /PA+; no switch on installation = /PA+.
SWITCH PV±
~~~~~~~~~~
Controls video feedback during the checking of the password (see switch CV
and PW). If enabled, the feedback displays a <■> each time a valid key is
pressed during password verification.
/PV- Disable password video feedback
/PV+ [Re]Enable password video feedback.
Defaults: /PV = /PV+; no switch on installation = /PV-.
SWITCH PW±?x
~~~~~~~~~~~~
The switch controls password-mediated unblanking. A selected sequence of
1 to 15 nonshifted, alphanumeric characters, followed by <Enter>, must be
must be typed in correct sequence to unblank the screen after it has been
blanked manually (i.e., via the hotkey). Rebooting via <Ctrl-Alt-Del> is
suppressed.
NOTE ------------------------------------------------------------------
Even when password checking is enabled, a password is not needed
to unblank the screen after a TIMED blanking.
------------------------------------------------------------------
* /PW- Disable password unblanking.
* /PW+ Re-enable use of the resident password (if a password has
not been loaded, the video will unblank only when <Enter>
is pressed).
* /PWx Specify the password from the DOS command line, which <x>
is a string of 1 to 15 nonshifted, alphanumeric (0-9 A-Z)
characters. Specification of the password via switch PWx
does not enable or disable password checking.
/PW? Request to specify a new password of up to 15 nonshifted,
alphanumeric characters only. After these characters have
been typed, press <Enter> to make this password resident;
press <Esc> or <Break> to avoid changing the password and
quit to DOS. The typed characters can be erased with the
<Backspace> key. Specification of the password via switch
PW? does not enable or disable password checking.
NOTE ------------------------------------------------------------------
If <Enter> is pressed before any valid character is typed during
switch /PW? interactive selection, unblanking of manual blanking
of the video will occur only after pressing the <Enter> key.
------------------------------------------------------------------
If password checking on unblanking is enabled (PW+), further commands via
switches PW±, PWx and PW? triggers a prospective password checking before
such commands can be implemented to avoid unauthorized password changes.
Defaults: /PW = /PW+; no switch on installation = /PW-.
SWITCH /QU
~~~~~~~~~~
If loaded, the resident becomes quiescent until the next execution of the
program, except if switch /QU or /? were specified at such time.
Default: /Q = /QU.
* SWITCH RK±
~~~~~~~~~~
In many cases when the keyboard interrupt (which is triggered whenever a
key is pressed or released) is not shared by ill-behaved applications or
subsequently loaded residents, switch RK permits restoration of keyboard
access to avoid being locked out from screen unblanking were blanking to
occur.
Switch /RK+ or /RK- must be specified before installing the resident for
the keyboard-access monitoring module to be part of the BLANKs resident;
this increases the resident size by 48 bytes.
Do not use this switch unless you experienced an unblanking lockout with
an application that does not chain to the hardware keyboard interrupt 9,
thus excluding residents from access to keyboard input.
If the prescribed method to revector (i.e., hook) the keyboard interrupt
were used by such a program, the dynamic keyboard-access monitoring code
attempts to change the revectoring, so that the resident may still chain
to the keyboard. Be aware, however, that if an ill-behaved program were
not follow such a method, this switch would not provide keyboard access;
see 'OPERATION REQUIREMENTS & CONFLICTS' below on how to avoid a lockout
in these cases.
/RK- Disable dynamic keyboard-access monitoring.
/RK+ [Re]Enable dynamic keyboard-access monitoring.
Switch RK+ should be used with caution, because conflicts may arise with
programs that do not follow prescribed methods of interrupt revectoring,
in some cases even crashing the system. (Use RK+ sparingly and issue RK-
as soon as possible once the offending program terminates.)
NOTE -----------------------------------------------------------------
Read 'OPERATION REQUIREMENTS & CONFLICTS' for resident unloading
constraints once switch RK+ is used, in order to avoid problems!
-----------------------------------------------------------------
Defaults: /RK = RK+; invalid switch after resident installation.
SWITCH TBn
~~~~~~~~~~
Timed blanking period in minutes. This is the interval that the program
waits before blanking the screen in the absence of keyboard, video (BIOS
mediated), or mouse (INT-33h mediated) activity.
/TBt Enable a period of 5 seconds for testing purposes.
/TB0 Disable timed blanking.
/TB1-60 Enable timed blanking after an inactivity period of between
1 and 60 minutes; a selection of 61 or more defaults to 60.
Defaults: /T = /TB = /TB3; no switch on installation = /TB3.
SWITCH UL
~~~~~~~~~
Uninstalls the resident code from memory. This request is disregarded if
the address of any of the interrupts intercepted by the resident has been
modified since the program was installed, since the revectoring indicates
another resident has subsequently hooked the same interrupt(s). Thus, the
program cannot be uninstalled, because this would leave such interrupt(s)
pointing to empty memory, and the program would then crash.
The program should be uninstalled only if it is the last resident to have
been installed. In practice, however, it can also be uninstalled when any
subsequently installed resident intercepts different interrupts; although
increasing the fragmentation of memory, the resulting "hole" is innocuous
and can be used by DOS for other purposes (e.g., an environment block).
Default: /U = /UL.
SWITCH V1
~~~~~~~~~
BLANKs configures its settings on-the-fly for the video adapter type that
is detected at the time the program is executed. This switch reconfigures
the program parameters to satisfy the selected video adapter type for the
primary or active video system (or the only system if no other adapter is
present).
/V1M MDA configuration: IBM Monochrome Display Adapter and, in
text mode only, HERCULES adapters HGC, HGC+, InColor etc.
The MDA configuration does not restore a graphics mode in
the HERCULES card. Uses and restores bit 3 of video port
3B8h, but forces bits 7 and 1 to 0.
/V1H HGA configuration: HERCULES adapters (HGC, HGC+, InColor)
in text or graphics mode, but not in CGA emulation. Uses
and restores register 6 of video port 3B5h.
/V1C CGA configuration: IBM Color Graphics Adapter, MultiColor
Graphics Array [MCGA], and compatible adapters. Uses and
restores bits 0-3 of port 3D9h and bit 3 of port 3D8h.
/V1E EGA configuration: IBM Enhanced Graphics Adapter and EGA-
compatible cards. Resets video ports 3BAh and 3DAh. Uses
and restores bit 5 of port 3C0h.
/V1V VGA configuration: IBM Video Graphics Array and compatible
adapters. Uses video port 3C4h, and uses and restores bit
5 of port 3C5h.
/V1- Ignore prior forced configuration. Uses the configuration
selected by BLANKs for the adapter detected at the time of
(each) execution.
Switch V1 does not need to be used unless you want to modify the settings
of the program (read the following notice on adapter compatibility).
NOTE -----------------------------------------------------------------
Proper blanking may not occur with some video adapters that are
not compatible with the corresponding IBM adapter "standard" at
the register level. Erratic adapter operation may occur in such
cases, and the program should not be used.
-----------------------------------------------------------------
BLANKs release 3.15 and higher assumes that a CGA whose ROM BIOS contains
the letters 'COMPAQ' is a monochrome COMPAQ card; if you wish to override
this assumption, switch V1C forces a CGA color configuration.
Default: /V = /V1.
* SWITCH V2
~~~~~~~~~
BLANKs configures its settings on-the-fly for the video adapter type that
is detected at the time the program is executed. This switch reconfigures
the program parameters to satisfy the selected video adapter type for the
secondary or inactive video system (if one is present).
/V2N Ignore the presence of a secondary (or inactive) adapter.
/V2M MDA configuration: IBM Monochrome Display Adapter and, in
text mode only, HERCULES adapters HGC, HGC+, InColor etc.
The MDA configuration does not restore a graphics mode in
the HERCULES card. Uses and restores bit 3 of video port
3B8h, but forces bits 7 and 1 to 0.
/V2H HGA configuration: HERCULES adapters (HGC, HGC+, InColor)
in text or graphics mode, but not in CGA emulation. Uses
and restores register 6 of video port 3B5h.
/V2C CGA configuration: IBM Color Graphics Adapter, MultiColor
Graphics Array [MCGA], and compatible adapters. Uses and
restores bits 0-3 of port 3D9h and bit 3 of port 3D8h.
/V2E EGA configuration: IBM Enhanced Graphics Adapter and EGA-
compatible cards. Resets video ports 3BAh and 3DAh. Uses
and restores bit 5 of port 3C0h.
/V2V VGA configuration: IBM Video Graphics Array and compatible
adapters. Uses video port 3C4h, and uses and restores bit
5 of port 3C5h.
/V2- Ignore prior forced configuration. Uses the configuration
selected by BLANKs for the adapter detected at the time of
(each) execution.
See Switch V1 above for notes and comments. No defaults.
* SWITCH WA
~~~~~~~~~
WINDOWS 3.x awareness. If this switch is specified before installing the
resident, the resident monitors interrupt 2Fh for the initialization and
exit broadcasts of WINDOWS (386-Enhanced and Standard modes only). Then,
BLANKs automatically becomes inactive when WINDOWS is ready to start up,
becoming active again when WINDOWS ends (and standard DOS operations are
ready to resume). Switch WA increases the resident size by 32 bytes.
Defaults: /W = /WA; invalid switch after resident installation.
COMMENTS
The comments may be added in the command line after the desired switches
and must be preceded by a semicolon. Such comments, which may be useful
in clarifying batch files, are ignored by the program.
Do not use the redirection and pipe characters in the comments since DOS
will attempt to implement the implied redirection or pipe request.
STATUS/USAGE/HELP PANELS
Executing the program with switch /? selected allows access to the Status/
Usage and Help panels. (If a Mouse pointing device driver, compatible with
the Microsoft Mouse driver version 6.0 or higher is loaded and active, all
of the services provided by these panels can also be activated by pointing
the mouse to specific areas of the screen and clicking either button. The
mouse driver state is saved prior to the display, to be restored later, if
sufficient memory is available for the panel display.)
The STATUS/USAGE panel, which is shown first, describes status information
for the resident and its services. If the program has not been installed,
pressing key <F3> or <D> shows the default installation parameters. If it
is installed, pressing key <F3> or <T> yields a 1-second blanking interval
for testing purposes; the original interval is restored once the screen is
unblanked by a keypress.
The USAGE subpanel shows a menu for the command switches: To cycle between
the main and the auxiliary menu, press key <F2> or <M>, or click the mouse
upon the screen button labelled <Menu>. If the resident is installed, the
status of some 'on/off' command switches is displayed by '+' or '-' before
a given menu entry.
Press key <F7>, or <X>, or click the mouse upon the screen button labelled
<Exit> to return to the DOS-prompt command line.
The HELP panel provides a summary description of the program and commands,
and is displayed if key <F1> or <H> is pressed from the Status/Usage panel
(or if the mouse is clicked upon the screen button labelled <Help>). Press
the keypad cursor keys (Home/End, PgUp/PgDn, arrows) to scroll the display
down or up or the key <S> to scroll in a closed loop; alternatively, click
the mouse upon the Up/Down arrows at the top right corner of the screen to
scroll. Press key <F1> to skip the brief program summary and position the
text on the Usage section directly.
A beating icon to the left of the preceding USAGE panel controls the speed
of screen scrolling of the HELP panel via key <S> or the mouse arrows. By
positioning the mouse pointer over the beating heart and clicking the left
or right mouse button, the rate of scrolling can be respectively increased
or decreased; the scrolling rate can also be changed by clicking the mouse
on the icon that becomes visible on the top line of the HELP panel (if the
mouse driver is installed).
Press key <Esc> or <F2>, or click the mouse upon the rightmost icon at the
top left corner of the screen, to return to the Status/Usage panel. Press
key <F7> or <X>, or click the mouse upon the leftmost icon, to exit to the
DOS-prompt command line.
THE ENVIRONMENT VARIABLE BLANKS
When the program is executed from the command line of DOS or a batch file
without an argument, it searches the DOS environment block for a variable
named 'BLANKS' having the format:
BLANKS=/SWITCH1/SWITCH2 .... /SWITCHn
Up to 128 characters are allowed after the equal sign. This string can be
incorporated to the environment block via the 'SET' command of DOS or via
switch EV of this program (see above).
The variable can be used to specify a BLANKs default configuration (e.g.,
/DP-/HK/HKB4/PW-), which can be restored just by executing BLANKs without
an argument after a temporary change of parameters.
While the SET command modifies the current DOS environment block, whether
it is the global or a local one, switch EV only modifies the global block
(even when the program is executed via a secondary COMMAND.COM, as in the
case of shelling out to DOS from an application). Notice that the local
environment block is only a copy of the global block and lacks sufficient
room to increase significantly the length of a variable, and that changes
made to a local environment are not inherited by the global one.
When searching for the environment variable, the program uses the current
DOS environment block, whether it is the global or a local one.
5. INSTALLATION IN UPPER MEMORY
This section describes in more detail aspects of the active (i.e., self-
loading) or passive (e.g. via DOS LOADHIGH) installation of the resident
in the upper memory region.
UMA SELF-LOADING
The utility can self-install the resident in the upper memory area (UMA),
that is, RAM addresses between 640 KB and 1,024 KB, via switch LH (or its
subfunctions LHn, LH@, and LHn@).
The allocation of UMA blocks (UMBs) is arbitrated by an XMS manager (XMM)
version 2.0 or higher; the XMM must be installed prior to the UMB-loading
of the resident. Allocation also requires the remapping of UMA addresses
by a UMB provider, when such a task is not implemented by the XMM itself.
The XMM HIMEM.SYS and the UMB-provider EMM386.EXE are distributed with MS
DOS 5+. The allocation of UMBs is controlled by DOS when these 2 drivers
are installed, and the command 'dos=umb' is added to the CONFIG.SYS file.
With DR-DOS 6+, UMB remapping and XMS support are provided by EMM386.SYS.
Other 386-specific memory managers, of course, also provide UMB remapping
and XMS support. All XMMs require MS-DOS version 3 or later.
Switch LHn, where A000 ≤ n ≤ FFFF (hexadecimal), allows the specification
of a minimum upper-memory limit for the UMB to avoid UMA regions having a
very slow access time (or to preserve regions with a fast access time for
other utilities that require faster times, such as a disk cache or screen
accelerator), or to avoid fragmentation of the UMA when UMB allocation is
not controlled by MS-DOS 5+, but by the XMM itself. The fragmentation may
occur when the XMM allocates blocks on a first-fit basis, i.e., the first
available UMB having the lowest UMA address is allocated, irrespective of
whether or not a (smaller) block matching the requested size is available
at a higher UMA address. Unless the size of the available UMBs increases
with increasing memory address, first-fit allocation of a small UMB leads
to the breaking of large UMA blocks into smaller ones, thus hampering the
UMB installation of larger residents.
If MS-DOS 5+ controls UMB allocation, the program enforces the allocation
of the resident block on a best-fit basis when {n} is not specified, that
is, all available blocks are searched (by DOS), and the one matching most
closely the size requested is allocated.
When DOS controls UMB allocation and {n} is specified, UMBs are allocated
on a first-fit basis. While this may contribute to UMA fragmentation, it
allows for the checking of a minimum memory limit in those cases in which
the selection or avoidance of a specific UMA region is more important.
Hence, compared to the upper-memory loading provided by the LH command of
MS-DOS 5+, the HILOAD command of DR-DOS 5+, or a similar service provided
by other memory managers, self-loading into a UMB has several advantages,
including: (1) it does not require an initial free UMB of the size of the
entire program (as opposed to the size of its resident only), (2) it does
allow user control on the selection of the upper-memory block, and (3) it
can help reduce UMA fragmentation.
NOTE -------------------------------------------------------------------
The address and size of available UMBs can be obtained with MEM.EXE
(when DOS controls UMB allocation) or via the memory manager itself
(when the allocation is controlled by 386-specific memory managers.
In either case, such data can also be obtained with UMAX.EXE, a UMA
mapping utility that is distributed by the author.
-------------------------------------------------------------------
UMA LOADING VIA MEMORY MANAGERS, DR-DOS 5+, or MS-DOS 5+
The resident can also be installed in the UMA via a 386-memory manager or
DR-DOS 5+/MS-DOS 5+ commands (e.g., HILOAD, LH, etc), provided that there
is a sufficiently large, free UMB for the actual size of the entire file,
and any for additional memory that may be required by the loading service
itself.
Please note that, to minimize disk storage, the program is distributed as
a compressed EXE file that expands on execution by a factor of 2 or less.
Thus, the difference between the actual size upon loading and the nominal
directory size may create conflicts with UMA-loading services that do not
measure actual size: If the available upper memory were smaller than that
required by the decompressed file but larger than the nominal (directory)
size, such service would attempt to load the compressed file. Of course,
the subsequent file decompression would overwrite the adjacent memory and
likely crash the memory manager or DOS!
When attempting to load the resident in a UMB via a memory manager or DOS
5+, do NOT request in the same command line switches that result in panel
displays. These displays require an additional 8,000 bytes of *adjacent*
free memory, and the free RAM measuring procedure used by the program can
be negated by UMA-loading services that do not update the program segment
prefix (PSP) of the program being loaded. Such switches are PW?, HK?, and
/?.
IDENTIFICATION IN MEMORY MAPS
If the resident has been loaded in lower conventional memory, the program
can be identified by name in usage maps yielded by various memory mapping
utilities. Although the program sheds its own copy of the environment at
installation time (to minimize the resident size), the name
BLANKs n.nn.n
will appear in the command line listing for the resident, irrespective of
the actual content of the DOS command line at the time of loading; n.nn.n
are the major and minor program version, and the revision number.
However, when UMB loading is mediated by the XMS directly (e.g., extended
memory manager and DOS versions 2-4, or MS-DOS 5+ not linked to the upper
memory) and the resident is selfloaded via switch LH, many memory mapping
programs do not list the allocated block, or lump it with other allocated
blocks, or fail to reveal the name of the resident. If the identification
of the UMB resident is necessary, use switch LH@ or LHn@ to load in lower
RAM a small resident marker that shows up in most memory maps.
If the UMB allocation is controlled by MS-DOS 5+, the UMB resident can be
identified with some mapping utilities (e.g., MEM.EXE of MS-DOS) although
it is listed as "Data" instead of "Program." Other mapping utilities can
identify the UMB resident when its associated lower-memory marker is also
loaded (see switch LH@).
6. TECHNICAL INFORMATION
INTERRUPTS
Whenever certain conditions occur, either within a program or the system,
it becomes necessary for the processor to interrupt its current operation
and execute one of a group of special routines. The action that triggers
the execution of such a routine is referred to as an interrupt; there are
internal interrupts, in response to a state of the CPU or an instruction,
and external interrupts, caused by signals sent to the CPU from elsewhere
in the system.
When the program is waiting for keyboard (or mouse) user input during its
Status/Usage/Help display, it invokes repeatedly the 'idle' interrupts of
DOS: INT 28h and, if running under MS-DOS 5+, function 1680h of INT 2Fh,
if this function indicates that it can process program suspension.
INT 28h permits potential background activation of (some) other residents
while INT 2Fh/1680h permits MS-DOS 5+ to suspend the program temporarily,
and transfer control to another program.
The program also intercepts several interrupts,
INT 08h - Timer hardware
INT 09h - Keyboard hardware
INT 10h - BIOS video services
INT 11h - BIOS equipment data
INT 13h - BIOS disk services
INT 21h - DOS system services
INT 2Fh - DOS multiplex services
INT 33h - (Microsoft/Logitech) Mouse services
Interrupt 8h is triggered about 18.2 times/second by channel 0 of the 8253
/8254 timer chip (IRQ0) so the system can update its time-of-day count; it
is monitored by the resident for its timed blanking service.
Interrupt 9h is triggered by the keyboard when a key has been depressed or
released; it is monitored by the resident for screen unblanking and manual
(hotkey) blanking services.
Interrupt 10h implements BIOS video input/output services; screen blanking
is suppressed during video activity, but the activity does not unblank the
screen once blanking has occurred.
Interrupt 11h provides a 32-bit datum on the BIOS equipment configuration;
it is used by the program to determine whether its resident is installed.
Interrupt 13h implements BIOS disk input/output services; the disk parking
is suppressed during disk activity. NOTE: Interrupt 13h is not intercepted
in a special version of BLANKs, which is smaller than the standard version
by ca. 100 bytes in the resident size.
Interrupt 21h is the major interface for DOS functions; it is monitored by
the resident for INT-9h revectoring requests.
Interrupt 2Fh provides a motley of services for MS-DOS, WINDOWS, and third
party applications; the resident monitors this interrupt for the so-called
initialization and exit broadcasts of WINDOWS 3.x 386-Enhanced or Standard
mode.
Interrupt 33h is the interface for the (Microsoft/Logitech) implementation
of calls to the Mouse driver; the interrupt is claimed by the Mouse driver
during its initialization, and it is used by most mouse-aware programs.
BYPASSING INTERRUPTS
BLANKs bypasses interrupt 8 when a timed blanking period of 0 minutes has
been specified (/TB0). Interrupt 9 is bypassed only when switches TB0 and
HK- (see above) have been selected. If switch HK- has been selected along
with a nonzero time period (TB1 through TB60), only the hotkey service of
interrupt 9 is bypassed. BIOS interrupts 10h and 13h can not be bypassed
by any command switch, while interrupt 33h can be bypassed by switch MA-.
This information may be of use for testing potential conflicts with other
resident programs.
DOS ERRORLEVELS
Upon completion, the program passes an errorlevel value which can be used
to check (via ERRORLEVEL commands in a batch file) the outcome of program
execution. The following errorlevels may be passed:
Value Nature of Error
----- ------------------------------------
255 Cyclical redundancy check failure
255 CPU type cannot execute 286+ version
255 DOS version 1 or 2.x encountered
128 XMM not installed/XMS error in UMB load
64 Error updating environment variable
32 Invalid password format
16 Invalid hotkey combination
8 Unknown video adapter
4 Unable to uninstall resident
2 Invalid switch request
1 User <CTRL-BREAK> keypress
0 Successful execution
Some conditions generating errorlevels 1 through 128 may be additive, and
the resulting error value may represent more than a single error.
7. OPERATION REQUIREMENTS & CONFLICTS
BLANKs will fail to operate properly when access to interrupts 8 and 9 is
denied by another program or resident loaded after BLANKs. This can occur
with ill-behaved programs that take over the interrupts and fail to chain
the information to those other utilities tapping the same interrupts (see
TECHNICAL INFORMATION section), such as some WYSIWYG word processors, GUI
systems, etc.
KEYBOARD-UNBLANKING LOCKOUT
In particular, if access to interrupt 9 is denied, keyboard activity will
fail to unblank a blanked screen; when testing for incompatibilities with
a given program, make sure that programs voiding the manual blanking when
the hotkey is pressed, will still permit unblanking of the screen after a
timed blanking.
If the unblanking lockout occurs, switch RK± may be used (provided it was
specified before installing the resident) as in the following batch file:
@Echo Off
BLANKS /RK+ ; keyboard access monitoring ON
<application> ; ill-behaved program
BLANKS /RK- ; keyboard access monitoring OFF
...
If this switch cannot avoid the problem, inactivate the timed blanking as
discussed for WINDOWS (see below).
RESIDENT UNLOADING & SWITCH RK
In the rather unlikely case that such ill-behaved program were a resident
(loaded after BLANKs), the loading sequence must be scrupulously reversed
during the unloading of the residents once switch RK+ has been issued:
(i) If the program can uninstall itself, unload it before BLANKs because
otherwise you may be unable to unload either one.
(ii) If the program cannot uninstall itself and a TSR-removal utility was
used to place a wedge in memory before the program was loaded (so it
can be removed), use this utility to unload it before BLANKs because
otherwise you will crash the system.
WINDOWS 3.X
BLANKs is not designed to operate under Microsft WINDOWS 3; starting with
version 4.13, BLANKs becomes inactive when WINDOWS 3.x (386-enhanced mode
or Standard mode) starts up and active when WINDOWS ends, provided switch
WA was specified before loading the resident. For other WINDOWS modes or
versions, WIN.EXE may be started via a batch file with the following:
@Echo Off
...
[path]BLANKS /TB0 /HK- ; inactivate blanker
[path]WIN ; run Windows
[path]BLANKS [/switches] ; reactivate blanker
...
To monitor mouse activity, BLANKs must be installed after a mouse driver
compatible with the Microsoft/Logitech driver format has been installed.
In addition, starting with revision 4.13, the BLANKs resident can become
mouse-aware after its installation (see switch MA for usage comments).
Since the BIOS video services are comparatively slow, many programs write
directly to video memory instead of using the BIOS services. Because such
video writes are not detected by BLANKs, screen blanking may occur during
during the video activity of such programs. Similarly, any mouse activity
implemented by commands that bypass interrupt 33h will not avoid blanking
of the screen (as in the case of some desktop publishing programs).
8. COPYRIGHT & LICENSE INFORMATION
This documentation, programs, and other files distributed in this software
package (the "Software") are the copyrighted property of FM de Monasterio
(the "Author"), who provides the Software and licenses its use. All rights
are reserved.
The Software is not sold. A license fee is required to use this Software.
This license does not transfer to you either the ownership of or the title
to the Software, which remain the property of the Author. A form required
to license the Software is provided in the enclosed file BLANKS.REG.
SINGLE USER LICENSE. Grants you use of this Software in a single computer
at a time; the Software may be transferred to another computer, as long as
it is used only in 1 computer at any time; under the license, the Software
may NOT be installed on a network server.
SITE/15-PCs LICENSE. Grants you use of this Software in a sigle site or a
set of sites, as long as the Software is not used in more than 15 machines
at a time, and that such machines are located exclusively within the site.
Licenses for more machines are available at discounted prices.
SOFTWARE BUNDLING LICENSE. Please write to the Author.
REFUNDS POLICY. If a problem notified within ninety (90) days of shipping
of the registered copy cannot be solved, the registration fee (but not the
shipping costs) will be refunded upon receiving a written request with the
original diskette(s) enclosed.
UPGRADE POLICY. Program upgrades are limited to licensed users. Upgrades
within the same major version (e.g. release 4.00 through 4.99) are free of
charge when a self-addressed, stamped, 5.25" diskette mailer with a 360-KB
diskette is included with the request. Other upgrades are charged half the
(single-user/site) registration fee. See the enclosed file BLANKS.UPG.
U.S. GOVERNMENT INFORMATION
The Software is Commercial Computer Software under the Federal Acquisition
Regulations of the U.S. government and the Agency Supplements to them. The
Software is provided to the Federal Government and its agencies only under
the Restricted Rights Provisions of the above noted regulations applicable
to commercial software developed at private expense, and not in the public
domain. The use, duplication, or disclosure of the Software by the Federal
Government or its agencies is subject to the restrictions set forth in the
subdivision (c.1.ii) of the Rights in Technical Data and Computer Software
clause at DFARS 252.227-7013 (October 1988) and FAR 52.227-19 (June 1987).
9. DISTRIBUTION TERMS
You may distribute the Software, but you are specifically prohibited from:
- Charging fees or asking donations in exchange of or payment
for copies of this Software.
- Distributing this Software with commercial products without
the written, express permission in advance from the author.
- Distributing this Software via a for-profit organization or
group, either alone or with other software.
- Changing any of the contents of this Software including the
copyright notice and license information.
You may not disassemble or otherwise reverse engineer the Software. Other
uses of the Software are prohibited without a written authorization signed
by the Author.
Latest program releases may be found at the Information Exchange BBS (703)
836-0748, as a compressed archive file.
WARRANTY DISCLAIMER FOR UNREGISTERED COPIES
The information contained in the documentation for the Software is subject
to change without notice.
The Author cannot and does not warrant that any functions contained in the
Software will meet your requirements, or that its operations will be error
free. The entire risk as to the Software performance or quality, or both,
is solely with the user and not the Author. You assume responsibility for
the selection of the Software to achieve your intended results and for the
installation, use, and results obtained from the Software.
The Author makes no warranty, either implied or expressed, including with-
out limitation any warranty with respect to this Software documented here,
its quality, performance, or fitness for a particular purpose. In no event
shall the Author be liable to you for damages, whether direct or indirect,
incidental, special, or consequential arising out the use of or any defect
in the Software, even if the Author has been advised of the possibility of
such damages, or for any claim by any other party.
All other warranties of any kind, either express or implied, including but
not limited to the implied warranties of merchantability and fitness for a
particular purpose, are expressly excluded.
By using the Software, you acknowledge (1) to have read and understood all
parts of this document and (2) to have agreed with and accepted all of its
terms and provisions without any reservation.
For information on the terms of the Limited Warranty for licensed Software
copies or any other information on this program, please write to:
FM de Monasterio
P.O. Box 219
Cabin John, MD 20818-0219
USA
┌─────────────────────────────────────────────────────────────┐
│ Trademarked names are the property of the respective owners │
└─────────────────────────────────────────────────────────────┘
[End]